﻿using System;
using System.Collections.Generic;
using System.Linq;
using DALS = Medianamik.Core.DAL.SubSonicDAL;

namespace Medianamik.Core.DAL.Repositories
{
    internal class DataTypeRepository : IDataTypeRepository
    {
        public DataType Get(Guid id)
        {
            var dataType = new DALS.DataType(id);

            return new DataType(dataType.DataTypeID, dataType.DataTypeSQLName,
                dataType.MustSpecifyLength, dataType.Indexable);
        }

        public IEnumerable<DataType> All()
        {
            var dataTypes = new DALS.DataTypeCollection();
            dataTypes.Where(DALS.DataType.Columns.Hidden, false);
            dataTypes.OrderByAsc(DALS.DataType.Columns.DataTypeSQLName);
            dataTypes.Load();
            return dataTypes.Select(dt => new DataType(dt.DataTypeID,
                dt.DataTypeSQLName, dt.MustSpecifyLength, dt.Indexable)).ToList();
        }
    }
}
